﻿/*
剔除相关数 
Time Limit:1000MS  Memory Limit:32768K


Description:
一个数与另一个数如果含有相同数字和个数的字符，则称两数相关。
现有一堆乱七八糟的整数，里面可能充满了彼此相关的数，请你用一下手段，自动地将其剔除。 

Input:
每组数据前有一个N(<1000)，表示跟随的整数P(0<P<2^32)个数，若N为0，表示结束。 
Output:
按从小到大的顺序输出非相关数，若没有非相关数，则输出None。 
Sample Input:
8
213 667 3 213 43 34 677 2
3
322 232 232
0
Sample Output:
2 3 667 677
None
*/

#include <algorithm>
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;

void foo()
{
	char str[]="8990000000111123335aa";
	char *p, *q, *r;
	p=q=r=str;
	for (; *q ;)
	{
		if(*p==*q)
			++q;
		else
		{
			if(1==(q-p))
				*r++=*p;
			p=q;
			q=p+1;
		}
	}
	if(1==(q-p))
				*r++=*p;
	*r='\0';
	puts(str);
}
int main()
{
	foo();
	/*
	for (unsigned n; cin>>n && n; )
	{
		vector<unsigned> relatives;
		relatives.reserve(n+1);
		for ( unsigned num; n--; relatives.push_back(num))
			cin>>num;
	}
	*/
	return EXIT_SUCCESS;
}

/*
#include <algorithm>
#include <iostream>
using namespace std;
const int MAX_ELEMS=10;
bool comparator(int m, int n)
{
	int count[MAX_ELEMS]={0};
	while (m && n)
	{
		++count[m%10];
		m/=10;
 		--count[n%10];
		n/=10;		
	}
	m = n =0;
	for (int i=0; i<10; i++)
		if(count[i]>0)
			++m;
		else if(count[i]<0)
			++n;
	return n-m;
}



int main()
{
	int a[] ={213,667,3,213,43,34,677,2};
	copy(a, a+sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, " "));
	cout<<endl;
	sort(a, a+sizeof(a)/sizeof(a[0]), comparator);
	copy(a, a+sizeof(a)/sizeof(a[0]), ostream_iterator<int>(cout, " "));
	return 0;
}
*/